﻿using System;
using System.Text;
using System.Drawing;
using System.Buffers;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;

public static partial class glDRIVE
{
    /*
    函数 gl.chlk
    对称正定方程组的平方根法
    参数 a: a[n][n]存放对称正定的系数矩阵，返回时上三角部分存放U矩阵。
    参数 n: n方程组的阶数
    参数 m: m方程组右端常数向量的组数
    参数 d: d[n][m]存放方程组右端m组常数向量。返回m组解向量。
    返回值 函数返回标志值。若=0则表示失败；若>0则表示正常。
    */

    public static string drive_chlk()
    {
        int i;
        double[,] a = new double[4, 4]{
            {5.0,7.0,6.0,5.0},
            {7.0,10.0,8.0,7.0},
            {6.0,8.0,10.0,9.0},
            {5.0,7.0,9.0,10.0}
        };
        double[,] d = new double[4, 2]{
            {23.0,92.0},
            {32.0,128.0},
            {33.0,132.0},
            {31.0,124.0}
        };

        string rs = "";
        rs += gl.html_table("Mat A:", a);
        rs += gl.html_table("Mat D:", d);

        i = gl.chlk(a, 4, 2, d);
        if (i <= 0) return "error: 0";

        rs += gl.html_table("Mat D:", d);
        return rs;
    }
}